package com.saep.logica;

import com.saep.modelo.Tipopractica;
import com.saep.persistencia.ITipoPracticaDAO;
import java.util.List;
import javax.ejb.EJB;
import javax.ejb.Stateless;

@Stateless
public class LogicaTipoPractica implements LogicaTipoPracticaLocal {

    @EJB
    private ITipoPracticaDAO TipoPracticaDAO;

    @Override
    public void registrar(Tipopractica tipopractica) throws Exception {
        if (tipopractica == null) {
            throw new Exception("La Practica no tiene información");
        }
        if (tipopractica.getCodigotipopractica() == null) {
            throw new Exception("EL numero de la practica es obligatorio");
        }
        Tipopractica objetoTipoPractica = TipoPracticaDAO.consultarporCodigo(tipopractica.getCodigotipopractica());
        if (objetoTipoPractica != null) {
            throw new Exception("La practica a regisrar ya existe");
        }
        TipoPracticaDAO.registrar(tipopractica);
    }

    @Override
    public void modificar(Tipopractica tipopractica) throws Exception {
        if (tipopractica == null) {
            throw new Exception("La practica no tiene información");
        }
        if (tipopractica.getCodigotipopractica()== null) {
            throw new Exception("El practica es obligatoria");
        }
        Tipopractica objetoTipopractica = TipoPracticaDAO.consultarporCodigo(tipopractica.getCodigotipopractica());
        if (objetoTipopractica == null) {
            throw new Exception("La practica  a  registrar ya existe");
        }
        if (tipopractica.getNombretipopractica()== null || tipopractica.getNombretipopractica().equals("")) {
            throw new Exception("El nombre de la practica es obligatorio");
        }
        TipoPracticaDAO.modificar(tipopractica);
    }

    @Override
    public void eliminar(Tipopractica tipopractica) throws Exception {
        Tipopractica objetoTipoPractica = TipoPracticaDAO.consultarporCodigo(tipopractica.getCodigotipopractica());
        if (objetoTipoPractica == null) {
            throw new Exception("La Practica no se encuetra en el sistema");
        }
        TipoPracticaDAO.eliminar(objetoTipoPractica);
    }

    @Override
    public List<Tipopractica> consultarPorTipos() throws Exception {
         return TipoPracticaDAO.consultarPorTipos();
    }

    @Override
    public Tipopractica consultarporCodigo(Integer codigoTipoPractica) throws Exception {
        if (codigoTipoPractica == null) {
            throw new Exception("La practica que esta consultando no se encuentra en nuestro sistema");
        }
        return TipoPracticaDAO.consultarporCodigo(codigoTipoPractica);
    }

}
